package com.tiancheng.trade.settlement.vo.settlement.api;

import com.tiancheng.trade.settlement.vo.BasePage;
import lombok.Data;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;

/**
 * NC取数请求对象
 */
@Data
public class NcCloudReqVO extends BasePage implements Serializable {
    /**
     * 统计起始时间
     */
    @NotNull(message = "统计开始时间不能为空")
    @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$"
            ,message="统计开始时间格式有误")
    private String startDateTime;

    /**
     * 统计结束时间
     */
    @NotNull(message = "统计结束时间不能为空")
    @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$"
            ,message="统计结束时间格式有误")
    private String endDateTime;
    /**
     * 产品段:业务场景
     */
    private String orderSource;

    /**
     * 收入类型编码（PART-差额、ALL-包销）
     *   对应关系：包销对应中台全额确认；差额对应中台差额确认，固定比例，固定金额
     */
    private String revenueType;
    /**
     * 收入类型编码集合
     */
    private List<String> revenueTypeList;

    /**
     * 分子公司编码
     */
    private List<String> orgCodes;

    /**
     * 供应商编码
     */
    private String merchantCode;

    /**
     * 收入记录状态
     */
    private List<Integer> revenueStatus;

}
